From bb5e8c629996117a83f4e5ed8160a9f3b836f655 Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Mon, 26 Feb 2007 15:39:34 +0000 Subject: [PATCH] Move credit scheduler configuration into XendDomainInfo, so that the domain will be cleaned up correctly if the scheduler parameters are wrong. Signed-off-by: Masaki Kanno --- tools/python/xen/xend/XendDomain.py | 14 +------------- tools/python/xen/xend/XendDomainInfo.py | 9 ++++++++- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/tools/python/xen/xend/XendDomain.py b/tools/python/xen/xend/XendDomain.py index fbb66e1461..dfcb51aff9 100644 --- a/tools/python/xen/xend/XendDomain.py +++ b/tools/python/xen/xend/XendDomain.py @@ -32,7 +32,7 @@ import threading import xen.lowlevel.xc -from xen.xend import XendOptions, XendCheckpoint, XendDomainInfo, XendNode +from xen.xend import XendOptions, XendCheckpoint, XendDomainInfo from xen.xend.PrettyPrint import prettyprint from xen.xend.XendConfig import XendConfig from xen.xend.XendError import XendError, XendInvalidDomain, VmError @@ -875,10 +875,6 @@ class XendDomain: self._refresh() dominfo = XendDomainInfo.create(config) - if XendNode.instance().xenschedinfo() == 'credit': - self.domain_sched_credit_set(dominfo.getDomid(), - dominfo.getWeight(), - dominfo.getCap()) return dominfo finally: self.domains_lock.release() @@ -895,10 +891,6 @@ class XendDomain: self._refresh() dominfo = XendDomainInfo.create_from_dict(config_dict) - if XendNode.instance().xenschedinfo() == 'credit': - self.domain_sched_credit_set(dominfo.getDomid(), - dominfo.getWeight(), - dominfo.getCap()) return dominfo finally: self.domains_lock.release() @@ -952,10 +944,6 @@ class XendDomain: POWER_STATE_NAMES[dominfo.state]) dominfo.start(is_managed = True) - if XendNode.instance().xenschedinfo() == 'credit': - self.domain_sched_credit_set(dominfo.getDomid(), - dominfo.getWeight(), - dominfo.getCap()) finally: self.domains_lock.release() dominfo.waitForDevices() diff --git a/tools/python/xen/xend/XendDomainInfo.py b/tools/python/xen/xend/XendDomainInfo.py index 9548e55586..69e1cda45d 100644 --- a/tools/python/xen/xend/XendDomainInfo.py +++ b/tools/python/xen/xend/XendDomainInfo.py @@ -398,11 +398,18 @@ class XendDomainInfo: XendTask.log_progress(81, 90, self._registerWatches) XendTask.log_progress(91, 100, self.refreshShutdown) + xendomains = XendDomain.instance() + xennode = XendNode.instance() + # save running configuration if XendDomains believe domain is # persistent if is_managed: - xendomains = XendDomain.instance() xendomains.managed_config_save(self) + + if xennode.xenschedinfo() == 'credit': + xendomains.domain_sched_credit_set(self.getDomid(), + self.getWeight(), + self.getCap()) except: log.exception('VM start failed') self.destroy() -- 2.30.2